package com.vip.jwt.common.utils.cntelecom;

import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;

import java.util.HashMap;
import java.util.Map;

/**
 * 中国电信
 */
public class CNTelecomCallUtil {

    @Getter
    private static String CLIENT_ID;

    @Getter
    private static String CLIENT_PASS;

    @Value("${cn-telecom-clientid}")
    public void setApiKey(String clientId) {
        CLIENT_ID = clientId;
    }

    @Value("${cn-telecom-clientpass}")
    public void setSecretKey(String clientPass) {
        CLIENT_PASS = clientPass;
    }

    /**
     * 语音通知
     * @param orgNum 主显号码
     * @param callNum 被叫号码
     * @return
     */
    public static String call(String orgNum,String callNum){
        String url = "http://IP:PORT/telecom-api/call/cServ";
        Map<String,Object> params = new HashMap<>(16);
        //客户ID
        params.put("client_id",CLIENT_ID);
        //客户密码
        params.put("client_pass",CLIENT_PASS);
        //接口超时时间：60秒
        params.put("org_timeout","60000");
        //主显号码
        params.put("org_num",orgNum);
        //被叫号码
        params.put("call_num",callNum);
        //播报内容
        params.put("vox_content","");
        //循环次数0：不循环 1：循环1次，上限循环4次
        params.put("isFor","1");
        //每次循环播报时间间隔：单位毫秒；上限15秒
        params.put("interval","2");
        //非必填
        //params.put("report_url","http://127.0.0.1/");
        String paramsStr = JSONUtil.toJsonStr(params);
        return HttpRequest.get(url).body(paramsStr).execute().body();
    }

    /**
     * 语音通知查询结果
     * @param logId 日志ID
     * @return
     */
    public static String queryResult(String logId){
        String url = "http://IP:PORT/telecom-api/call/cQueryResult";
        Map<String,Object> params = new HashMap<>(16);
        //客户ID
        params.put("client_id",CLIENT_ID);
        //客户密码
        params.put("client_pass",CLIENT_PASS);
        //接口超时时间
        params.put("logId",logId);
        String paramsStr = JSONUtil.toJsonStr(params);
        return HttpRequest.get(url).body(paramsStr).execute().body();
    }

}
